package com.todo.strategy.card.infrastructure.repository;


import com.todo.common.common.entity.response.page.PageResult;
import com.todo.strategy.card.infrastructure.entity.condition.TravelCardCondition;
import com.todo.strategy.card.infrastructure.entity.model.TravelCardCountModel;
import com.todo.strategy.card.infrastructure.entity.po.TravelCardPO;

/**
 * (TravelCard)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 21:10:04
 */
public interface TravelCardRepository {

    /**
     * 多条件查询旅游卡列表
     *
     * @param travelCardCondition
     * @return
     */
    PageResult<TravelCardPO> queryTravelCardByCondition(TravelCardCondition travelCardCondition);

    /**
     * 多条件查询旅游卡列表数量
     *
     * @param travelCardCondition
     * @return
     */
    Long queryCountByCondition(TravelCardCondition travelCardCondition);

    /**
     * 根据主键id查询旅游卡详情
     *
     * @param id
     * @return
     */
    TravelCardPO queryTravelCardPOById(Long id);

    /**
     * 新增旅游卡详情
     *
     * @param travelCardPO
     * @return
     */
    Boolean insertTravelCardPO(TravelCardPO travelCardPO);

    /**
     * 根据主键id更新旅游卡详情
     *
     * @param travelCardPO
     * @return
     */
    Boolean updateTravelCardPOById(TravelCardPO travelCardPO);

    /**
     * 根据主键id删除旅游卡详情
     *
     * @param id
     * @return
     */
    Boolean removeTravelCardPOById(Long id);

    /**
     * 更新旅游卡相关数量信息
     *
     * @param model
     * @return
     */
    Boolean updateTravelCardCount(TravelCardCountModel model);


}
